package com.qing.springcloud.dao;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
import com.qing.springcloud.entity.User;
import com.qing.springcloud.mapper.UserMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;

import javax.swing.text.html.Option;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
 * (user)数据DAO
 *
 * @author kancy
 * @since 2025-07-09 19:32:19
 * @description 由 Mybatisplus Code Generator 创建
 */
@Slf4j
@Repository
public class UserDao extends ServiceImpl<UserMapper, User> {
    /**
     * 根据用户名查找用户
     *
     * @param username 用户名
     * @return 包含用户的Optional对象，如果找不到则为空
     */
    public Optional<User> findByUsername(String username){
        return  Optional.of(super.getOne(new QueryWrapper<User>().eq("username",username)));
    };

    public Optional<User> getById(Long id){
        return  Optional.of(super.getById(id));
    };

    /**
     * 检查用户名是否已存在
     *
     * @param username 用户名
     * @return 如果用户名存在返回true，否则false
     */
    public boolean existsByUsername(String username){
        return super.exists(new QueryWrapper<User>().eq("username",username));
    };

    public List<User> findAllById(List<Long> friendIds) {
        return super.listByIds(friendIds);
    }


    public String getUsername(Long userId) {
        User user = super.getById(userId);        // 假设getById方法可以根据ID查询用户
        if (user != null) {
            return user.getUsername();
        } else {
            return null;
        }
    }

    public String getNickname(Long userId) {
        User user = super.getById(userId);        // 假设getById方法可以根据ID查询用户
        if (user != null) {
            return user.getNickname();
        } else {
            return null;
        }
    }
}